
;*****************************************************
;*
;*	MP/M-86 Inter-Module Function Definitions
;*
;*	Same calling conventions as User programs
;*	except CX = function instead of CL
;*	       BX = 2nd parameter on entry
;*	(CH=module, CL=function # in module)
;*
;*****************************************************

	; Module definitions

user		equ	0
sup		equ	1
rtm		equ	2
mem		equ	3
cio		equ	4
bdos		equ	5
xios		equ	6
net		equ	7

	; Bits that represent present modules
	; in module_map

supmod_bit	equ	001h
rtmmod_bit	equ	002h
memmod_bit	equ	004h
bdosmod_bit	equ	008h
ciomod_bit	equ	010h
xiosmod_bit	equ	020h
netmod_bit	equ	040h

	; Supervisor Functions

;f_sysreset	equ	(user * 0100h) + 0
;f_conin	equ	(user * 0100h) + 1
;f_conout	equ	(user * 0100h) + 2
;f_rawconin	equ	(user * 0100h) + 3
;f_rawconout	equ	(user * 0100h) + 4
;f_lstout	equ	(user * 0100h) + 5
;f_rawconio	equ	(user * 0100h) + 6
;f_getiobyte	equ	(user * 0100h) + 7
;f_setiobyte	equ	(user * 0100h) + 8
f_conwrite	equ	(user * 0100h) + 9
f_conread	equ	(user * 0100h) + 10
f_constat	equ	(user * 0100h) + 11
;f_getversion	equ	(user * 0100h) + 12
;f_diskreset	equ	(user * 0100h) + 13
;f_diskselect	equ	(user * 0100h) + 14
;f_fopen		equ	(user * 0100h) + 15
;f_fclose       	equ	(user * 0100h) + 16
;f_searchfirst	equ	(user * 0100h) + 17
;f_searchnext	equ	(user * 0100h) + 18
;f_fdelete	equ	(user * 0100h) + 19
;f_freadseq	equ	(user * 0100h) + 20
;f_fwriteseq	equ	(user * 0100h) + 21
;f_fmake		equ	(user * 0100h) + 22
;f_frename	equ	(user * 0100h) + 23
;f_loginvector	equ	(user * 0100h) + 24
;f_getdefdisk	equ	(user * 0100h) + 25
;f_setdma	equ	(user * 0100h) + 26
;f_getallocvec	equ	(user * 0100h) + 27
;f_writeprotect	equ	(user * 0100h) + 28
;f_getrovector	equ	(user * 0100h) + 29
;f_setfileattr	equ	(user * 0100h) + 30
;f_getdpb	equ	(user * 0100h) + 31
;f_usercode	equ	(user * 0100h) + 32
;f_freadrdm	equ	(user * 0100h) + 33
;f_fwriterdm	equ	(user * 0100h) + 34
;f_filesize	equ	(user * 0100h) + 35
;f_setrndrec	equ	(user * 0100h) + 36
;f_resetdrive	equ	(user * 0100h) + 37
;f_accessdrive	equ	(user * 0100h) + 38
;f_freedrive	equ	(user * 0100h) + 39
;f_writerndzero	equ	(user * 0100h) + 40
;f_callbios	equ	(user * 0100h) + 50
;f_setdmab	equ	(user * 0100h) + 51
;f_getdma	equ	(user * 0100h) + 52
;f_getmaxmem	equ	(user * 0100h) + 53
;f_getabsmaxmem	equ	(user * 0100h) + 54
;f_allocmem	equ	(user * 0100h) + 55
;f_allocabsmem	equ	(user * 0100h) + 56
;f_freemem	equ	(user * 0100h) + 57
;f_freeallmem	equ	(user * 0100h) + 58
;f_userload	equ	(user * 0100h) + 59
;f_malloc	equ	(user * 0100h) + 128
;f_memfree	equ	(user * 0100h) + 130
;f_polldev	equ	(user * 0100h) + 131
;f_flagwait	equ	(user * 0100h) + 132
;f_flagset	equ	(user * 0100h) + 133
f_qmake		equ	(user * 0100h) + 134
f_qopen		equ	(user * 0100h) + 135
;f_qdelete	equ	(user * 0100h) + 136
f_qread		equ	(user * 0100h) + 137
;f_cqread	equ	(user * 0100h) + 138
f_qwrite	equ	(user * 0100h) + 139
;f_cqwrite	equ	(user * 0100h) + 140
;f_delay		equ	(user * 0100h) + 141
;f_dispatch	equ	(user * 0100h) + 142
f_terminate	equ	(user * 0100h) + 143
;f_createproc	equ	(user * 0100h) + 144
;f_setprior	equ	(user * 0100h) + 145
;f_conattach	equ	(user * 0100h) + 146
;f_condetach	equ	(user * 0100h) + 147
;f_setdefcon	equ	(user * 0100h) + 148
;f_conassign	equ	(user * 0100h) + 149
;f_clicmd	equ	(user * 0100h) + 150
;f_callrsp	equ	(user * 0100h) + 151
;f_parsefilename	equ	(user * 0100h) + 152
;f_getdefcon	equ	(user * 0100h) + 153
;f_sdataddr	equ	(user * 0100h) + 154
;f_timeofday	equ	(user * 0100h) + 155
;f_pdaddress	equ	(user * 0100h) + 156
;f_abortprocess	equ	(user * 0100h) + 157
;f_lstattach	equ	(user * 0100h) + 158
;f_lstdetach	equ	(user * 0100h) + 159
;f_setdeflst	equ	(user * 0100h) + 160
;f_clstattch	equ	(user * 0100h) + 161
;f_cconattch	equ	(user * 0100h) + 162
;f_mpmvernum	equ	(user * 0100h) + 163
;f_getdeflst	equ	(user * 0100h) + 164

	; Internal RTM functions

;f_sleep		equ	(rtm * 0100h) + 18
;f_wakeup	equ	(rtm * 0100h) + 19
;f_findpdname	equ	(rtm * 0100h) + 20


	; Internal MEM functions

;f_share		equ	(mem * 0100h) + 8
;f_maualloc	equ	(mem * 0100h) + 9
;f_maufree	equ	(mem * 0100h) + 10
;f_mlalloc	equ	(mem * 0100h) + 11
;f_mlfree	equ	(mem * 0100h) + 12

	; Internal SUP functions

;f_load		equ	(sup * 0100h) + 10

	; Internal CIO functions

f_conprint	equ	(cio * 0100h) + 14
